---
title: SAIF.Business.Claim.Legal dependencies
summary: Internal and external dependencies for the legal-case business/domain library.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# SAIF.Business.Claim.Legal dependencies

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| [SAIF.Business.View.Policy](../saif-business-view-policy/overview.md) | Project Reference | Policy lookups, e.g. `clsAttorneyPolicyAssignment` policy-validity check. |
| [SAIF.Services.Appworx](../saif-services-appworx/overview.md) | Project Reference | Scheduled/batch job integration. |
| BankValidator | NuGet Package (same-repo) | Consumes `Institutions.Designer.vb` typed DataSet for bank/institution reference data (ACH-related features). |
| SAIF.BOF.Framework.Bindable | NuGet Package | Supplies bindable-object framework infrastructure used by `clsBusinessBase`-derived entities. |
| SAIF.BOF.Framework.Connection | NuGet Package | Supplies data-portal/connection infrastructure used by the CRUD/data-portal path. |
| SAIF.BOF.Framework.Core | NuGet Package | Supplies `clsBusinessBase`, `clsBusinessCollection`, `clsBusinessCollectionBase`, `clsRetrieveOnlyBusinessCriteria`, `clsBusinessApiCriteriaBase`, `clsAddress`, `IBusinessCriteria`, `IDataPortalInfo`. |
| SAIF.BOF.Framework.DNS | NuGet Package | Supplies framework DNS/service-resolution infrastructure. |
| SAIF.BOF.Framework.Logging | NuGet Package | Supplies framework logging infrastructure. |
| SAIF.BOF.Framework.Mail | NuGet Package | Supplies framework mail infrastructure. |
| SAIF.BOF.Framework.Security | NuGet Package | Supplies `AppGlobal.EnvironmentService` and related security/environment infrastructure. |
| SAIF.BOF.Framework.Security.EnvironmentApi | NuGet Package | Supplies `IEnvironmentService`-based configuration/environment accessors (`GetApplicationEnvironment()`, `GetConfigSetting(key As String)`, e.g. `GetConfigSetting("xpressionsoutputdocumentspath")`, `GetConfigSetting("Legal.LettersManagingAttorneyUserId")`). |
| SAIF.Business | NuGet Package | Referenced as a packaged binary; base SAIF business-layer types. |
| SAIF.Business.Claim | NuGet Package | Referenced as a packaged binary; claim-domain business types. |
| SAIF.Business.Claim.Maintenance | NuGet Package | Referenced as a packaged binary; claim-maintenance business types. |
| SAIF.Business.Tasks | NuGet Package | Referenced as a packaged binary; task/workflow business types. |
| SAIF.Business.Tasks.Claim | NuGet Package | Referenced as a packaged binary; claim-task business types. |
| SAIF.Business.View.Claim | NuGet Package | Referenced as a packaged binary; claim view/read-model types. |
| SAIF.Business.View.Provider | NuGet Package | Referenced as a packaged binary; provider view/read-model types. |
| SAIF.Framework.Common | NuGet Package | Referenced as a packaged binary; shared framework utility types. |
| SAIF.HashUtil | NuGet Package | Referenced as a packaged binary; hashing utility functions. |
| SAIF.ResourceFiles | NuGet Package | Referenced as a packaged binary; shared resource strings. |
| SAIF.Services.Exchange | NuGet Package | Attorney schedule → Exchange calendar sync (`clsAttorneySchedule`/`clsAssignmentProcess.callSaifExUpdate`). |
| SAIF.Web.API.Clients | NuGet Package | REST client infrastructure for the `LegalApi` integration tier used by `clsLegalCase.CheckForOtherCases()` and `Print\clsLetterRequest(Collection)`. |
| SAIF.Web.API.Core | NuGet Package | Core contracts/support for the `SAIF.Web.API.Clients` REST client infrastructure. |
| ImagingAPI.Client | NuGet Package | REST client for imaging-service integration. |
| ImagingAPI.Core | NuGet Package | Core contracts/support for `ImagingAPI.Client`. |
| PdfAPI.Client | NuGet Package | REST client for PDF-generation integration used by print/letter operations. |
| PdfAPI.Core | NuGet Package | Core contracts/support for `PdfAPI.Client`. |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| Oracle.ManagedDataAccess | 4.122.21.1 | Primary Oracle ADO.NET data-access provider for CRUD/stored-procedure calls. |
| System.Data.OracleClient | n/a* | Legacy Oracle client reference alongside `Oracle.ManagedDataAccess`.* |
| Autofac | n/a* | Dependency-injection container. |
| AutoMapper | n/a* | Object-to-object mapping (e.g., business object ↔ DTO projection). |
| FluentValidation | n/a* | Supplemental validation support. |
| RestSharp | n/a* | REST client library underlying `LegalApi`/integration API calls. |
| Newtonsoft.Json | n/a* | JSON serialization for REST payloads. |
| log4net | n/a* | Logging. |
| iTextSharp | n/a* | PDF generation/manipulation support for letter printing. |
| Microsoft.Exchange.WebServices | n/a* | Exchange Web Services client used for calendar sync. |
| Microsoft.Exchange.WebServices.Auth | n/a* | Authentication support for Exchange Web Services calls. |
| System.Web.Http | n/a* | ASP.NET Web API hosting/client support. |
| System.Web.Http.WebHost | n/a* | ASP.NET Web API web-host integration. |
| System.Text.Json | n/a* | JSON serialization (alongside Newtonsoft.Json). |

*Exact package versions beyond `Oracle.ManagedDataAccess` and the SAIF framework packages (v2.0.22279.1) were not captured in the Stage 1 analysis findings; treat unspecified versions as unknown pending a `.vbproj`/packages.config cross-check.*

## Transitive dependencies

Dependencies in this section are inherited from dependency framework libraries. They are not directly referenced by this library but are required at runtime through framework packages.

| Dependency | Source framework | Type | Usage |
| --- | --- | --- | --- |
| clsRulesManager | `SAIF.Framework.Core` | Transitive | Owned by `clsBusinessBase`-derived entities; registers and enforces business rules via `Rules.CheckRules(businessObject As Object)`.† |
| clsBrokenRuleCollection | `SAIF.Framework.Core` | Transitive | Tracks broken-rule state surfaced through `IDataErrorInfo` on `clsBusinessBase`-derived entities.† |
| IApiClient / IDataPortalInfo | `SAIF.Framework.Core` | Transitive | Resolved via `clsBusinessApiCriteriaBase.GetApiClient()`/`FormatRoute()` for API-backed criteria such as `clsCaseSearchResult` and the `Print\` subsystem.† |
| clsBusinessCriteriaBase | `SAIF.Framework.Core` | Transitive | Base type supplying the functional `RetrieveSQL` property inherited by `clsRetrieveOnlyBusinessCriteria`.† |

## Dependency risks and notes

- **Non-parameterized `ValidateState()` SQL — SQL-injection risk.** `TableMaint\clsHearingLocation.vb` and `TableMaint\clsOtherFirm.vb` each build their `ValidateState()` lookup query against `ALL_STATES`/`NCCI_STATE_CODE` via raw string concatenation of a user-suppliable `State` value (`"SELECT NCCI_STATE_CODE from ALL_STATES where STATE = '" & State & "'"`) rather than an Oracle bind parameter, unlike the standard `IBusinessCriteria` CRUD paths elsewhere in this library. This is a confirmed non-parameterized query and a potential SQL-injection surface (Stage 1b DB analysis findings DB-CLL-063/DB-CLL-064); it should be remediated to use bind variables and is flagged for the Business Rules / Security review stage.
- **Duplicate MCO collection dependency chain.** The policy-lookup dependency into `SAIF.Business.View.Policy` transitively exposes a known duplicate: that library defines both `clsMCOCollection` and `clsPolicyMCOCollection`, which independently call the identical stored procedure `pk72846_view_policy.getmco` with identical parameters, differing only in the populated item type. This is legacy duplicate code in the dependency, not introduced by `SAIF.Business.Claim.Legal`, but consumers of policy data through this dependency chain should be aware both collections exist and resolve to the same underlying data.
- **Hybrid SQL + REST integration surface.** `clsLegalCase.CheckForOtherCases()` and the entire `Print\` letter-generation subsystem depend on the `LegalApi`/integration REST tier (via `SAIF.Web.API.Clients`) rather than direct SQL; the step-level behavior of that external tier is not traceable from this library's source, so failures in that dependency are an operational blind spot from this library's perspective.**
- **Environment-gated Exchange calendar sync dependency.** The dependency on `SAIF.Services.Exchange` (via `clsAttorneySchedule`/`clsAssignmentProcess.callSaifExUpdate`) is conditionally invoked based on `AppGlobal.EnvironmentService.GetApplicationEnvironment()`, meaning this dependency's runtime behavior differs between Production and non-Production environments.*
- **Auto-generated scaffolding dependency.** `Institutions.Designer.vb`/`Institutions.xsd` is auto-generated typed-DataSet scaffolding consumed alongside `BankValidator`; confirm whether this dependency should be treated as part of the documented public API surface or excluded as pure scaffolding.*

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Business.Claim.Legal\SAIF.Business.Claim.Legal.vbproj`
- `SAIF.Business.Claim.Legal\TableMaint\clsAttorneyPolicyAssignment.vb`, `clsHearingLocation.vb`, `clsOtherFirm.vb`, `clsAttorneySchedule.vb`
- `SAIF.Business.Claim.Legal\LegalNet\clsLegalCase.vb`, `clsAssignmentProcess.vb`
- `SAIF.Business.Claim.Legal\Print\clsLetterRequest.vb`, `clsLetterRequestCollection.vb`
- `SAIF.Business.Claim.Legal\Institutions.Designer.vb`
- `SAIF.Business.View.Policy\SAIF.Business.View.Policy.vbproj`, `clsMCOCollection.vb`, `clsPolicyMCOCollection.vb`, `clsPolicySecurity.vb`
